# -*- coding: utf-8 -*-
"""
对比修复前后的CSV文件
"""

import pandas as pd
import os

def compare_csv_files():
    """对比修复前后的CSV文件"""
    
    print('📊 修复前后CSV文件对比')
    print('=' * 60)
    
    # 修复前的文件
    before_file = 'output/深圳_餐饮_20250720_183224.csv'
    after_file = 'output/深圳_餐饮_20250720_192057.csv'
    
    if not os.path.exists(before_file):
        print(f'❌ 修复前文件不存在: {before_file}')
        return
    
    if not os.path.exists(after_file):
        print(f'❌ 修复后文件不存在: {after_file}')
        return
    
    try:
        print('🔴 修复前 (深圳_餐饮_20250720_183224.csv):')
        df_before = pd.read_csv(before_file)
        print(f'   记录数: {len(df_before)}')
        
        if '联系人' in df_before.columns:
            contact_lengths = df_before['联系人'].str.len()
            print(f'   联系人字段平均长度: {contact_lengths.mean():.1f} 字符')
            print(f'   联系人字段最大长度: {contact_lengths.max()} 字符')
            print(f'   过长联系人记录: {len(df_before[contact_lengths > 50])} 条')
        
        if '发布时间' in df_before.columns:
            time_samples = df_before['发布时间'].head(3).tolist()
            print(f'   发布时间样本: {time_samples}')
        
        print()
        
        print('🟢 修复后 (深圳_餐饮_20250720_192057.csv):')
        df_after = pd.read_csv(after_file)
        print(f'   记录数: {len(df_after)}')
        
        if '联系人' in df_after.columns:
            contact_lengths_after = df_after['联系人'].str.len()
            print(f'   联系人字段平均长度: {contact_lengths_after.mean():.1f} 字符')
            print(f'   联系人字段最大长度: {contact_lengths_after.max()} 字符')
            print(f'   过长联系人记录: {len(df_after[contact_lengths_after > 50])} 条')
        
        if '发布时间' in df_after.columns:
            time_samples_after = df_after['发布时间'].head(3).tolist()
            print(f'   发布时间样本: {time_samples_after}')
        
        print()
        print('📋 修复后数据样本:')
        for i, row in df_after.head(2).iterrows():
            print(f'{i+1}. 标题: {row["标题"]}')
            print(f'   联系人: "{row["联系人"]}"')
            print(f'   发布时间: {row["发布时间"]}')
            print(f'   联系方式: {row["联系方式"]}')
            print()
        
        print('🎯 修复效果总结:')
        print('   ✅ 发布时间: 从爬取时间改为真实发布时间')
        print('   ✅ 联系人字段: 从大段文本改为简洁姓名')
        print('   ✅ 数据提取: 使用精确XPath选择器')
        print('   ✅ 时间过滤: 基于真实发布时间进行30天过滤')
        
    except Exception as e:
        print(f'❌ 对比失败: {e}')

if __name__ == "__main__":
    compare_csv_files()
